package com.example.theorygame.layer;

import android.os.AsyncTask;
import android.view.MotionEvent;

import com.example.theorygame.util.CommouUtils;

import org.cocos2d.actions.base.CCAction;
import org.cocos2d.actions.instant.CCCallFunc;
import org.cocos2d.actions.instant.CCHide;
import org.cocos2d.actions.instant.CCShow;
import org.cocos2d.actions.interval.CCDelayTime;
import org.cocos2d.actions.interval.CCSequence;
import org.cocos2d.nodes.CCSprite;
import org.cocos2d.types.CGPoint;
import org.cocos2d.types.CGRect;


/**
 * 欢迎图成
 *
 * @author yangfan
 */
public class WelcomeLayer extends BaseLayer {
    //LOGO精灵（人物，道具等）
    private CCSprite logo;
    //开始按钮
    private CCSprite start = CCSprite.sprite("image/loading/button_start.png");

    /**
     * 构造方法
     */
    public WelcomeLayer() {
        //1.LOGO初始化
        logo = CCSprite.sprite("image/tournament/blue.png");
        //设置坐标
        logo.setScale(0.75f);
        logo.setPosition(winSize.width / 2, winSize.height / 2);
        //添加精灵到图层中
        this.addChild(logo);
        /**2.logo动作*/
        //隐藏
        CCHide hide = CCHide.action();
        //延迟
        CCDelayTime delay = CCDelayTime.action(1);
        //显示
        CCShow show = CCShow.action();
        /**3.LOGO动作次序*/
        CCSequence seq = CCSequence.actions(show, delay, hide, CCCallFunc.action(this, "ShowWelcome"));
        //**4.执行*/
        logo.runAction(seq);

        /**5.异步线程
         * void 关键字 无返回值
         * Void return null
         */
        new AsyncTask<Void, Void, Void>() {
            protected Void doInBackground(Void... params) {
                try {
                    Thread.sleep(4000);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
                return null;
            }

            ;

            protected void onPostExecute(Void result) {
                //开启按钮显示
                start.setVisible(true);
                //开启触摸实践
                setIsTouchEnabled(true);
            }

            ;
        }.execute();
    }

    /**
     * 显示欢迎界面
     */
    public void ShowWelcome() {
        //1.删除LOGO图片
        logo.removeSelf();
        //2.精灵 背景图
        CCSprite welcome = CCSprite.sprite("image/background.png");

        //设置瞄点  0,0指的是以左下角为原点
        welcome.setAnchorPoint(0, 0);
        //添加到图层中
        this.addChild(welcome);

        //3.加载图片
        CCSprite load = CCSprite.sprite("image/loading/button_start_01.png");
        //设置坐标
        /**
         * 精灵等类  默认的描点 在0.5 0.5 位置
         */
        load.setScale(0.3f);
        load.setPosition(winSize.width / 2, winSize.height / 2 - 80);
        //添加到图层中
        this.addChild(load);

        //4.开始按钮图片
        start.setScale(0.3f);
        start.setPosition(winSize.width / 2, winSize.height / 2 - 80);
        start.setVisible(false);
        this.addChild(start);
        /**
         * 动画效果
         * 1.图片的路径位置
         * 2.图片的数量
         * 3.动画效果是否重复  %02d 02俩位数 d 整型
         */
        CCAction animate = CommouUtils.animate("image/loading/button_start_%02d.png", 7, false);

        //运行动画效果
        //加载图片
        load.runAction(animate);
    }

    /**
     * 触摸事件
     */
    @Override
    public boolean ccTouchesBegan(MotionEvent event) {
        //1.获取鼠标触摸模点
        CGPoint conver = this.convertTouchToNodeSpace(event);
        /*2.判断是否点击了该按钮区域
         *aRect 按钮区域
         *aPoint 触摸区域  重合
         */
        if (CGRect.containsPoint(start.getBoundingBox(), conver)) {
            CommouUtils.changeLayer(new FirstLayer());
        }


//        return super.ccTouchesBegan(event);
        return true;

    }
}
